流式 (SSE)
流式脚本逐帧处理响应, 而非缓冲整个响应体。把抓包规则设为 Response 类型, 在规则的 Streaming 段选一个 Frame Codec。脚本随后每帧执行一次, 内存占用极小, 且无需等响应结束即可开始输出。
流式仅适用于有帧边界的格式。首个 codec 是 SSE(text/event-stream, 仅 identity 编码)。单体 JSON 这类需要完整文档才能解析的格式无法流式, 继续走缓冲模型。
模式
- Modify(改写) —— 内联改写。每帧执行脚本并把结果重新发出, 脚本可改写、丢弃或注入帧。转发会等待脚本(天然背压)。
- Observe(观察) —— 旁路 tee。原始流原样转发, 另把一份副本交给脚本只做副作用(日志、
$notification)。返回值被忽略, 脚本绝不拖慢流。Observe 为逐帧无状态快照; 需要$streamState时请用 Modify。
全局对象
其余抓包脚本全局对象同样可用:$argument、$persistentStore、$httpClient、$notification、$utils、console。
$done 结果
示例
说明
isLast在最后一个真实帧之后, 以一个合成空帧投递; 用它来 flush 累积的$streamState。- SSE 输出按规范形式重新序列化, 不保留未知字段与原始空白。
- 带
Content-Encoding(gzip/br)的响应回落到非流式的仅头处理。
